/*
 * @lc app=leetcode.cn id=219 lang=typescript
 *
 * [219] 存在重复元素 II
 */

// @lc code=start

// TODO 哈希表加上滑动窗口解析重复最近
function containsNearbyDuplicate(nums: number[], k: number): boolean {
    const record = new Map<number, number>();
    for (let index = 0; index < nums.length; index++) {
        const element = nums[index];

        if (record.has(element) && index - record.get(element)! <= k) {
            return true;
        }
        // 相隔距离要最近，所以每次把自己赋值回去就是正确的
        record.set(element, index);
    }
    return false;
}
// @lc code=end
